/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vista;

import daoBeans.conexionMySql;
import daoBeans.daoUsuario;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import modelo.Usuario;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

/**
 *
 * @author Gustavo Arturo Ríos Páez
 */
@ManagedBean
@SessionScoped
public class crudEmpleadosBean {

    private String nombre;
    private String id;
    private String rol;
    private String empresa;
    private String username;
    private String password;
    private Map<String, String> roles = new HashMap<String, String>();
    private List<String> resultad = new ArrayList<String>();
    private conexionMySql sql = new conexionMySql();
    private Connection mysql = sql.comenzarDb();;
    private daoUsuario daou = new daoUsuario(mysql);

    public crudEmpleadosBean() {
        roles.put("Gerente", "Gerente");
        roles.put("Consulta", "Consulta");
        roles.put("Otro", "Otro");
    }

    public void init() {
        
        
    }

    private void close() {
        try {
            mysql.close();
        } catch (SQLException ex) {
            Logger.getLogger(crudEmpleadosBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void crearEmpleado() {

        
        Usuario u;
        u = new Usuario(getNombre(), getId(), getRol(), getEmpresa(), getUsername(), getPassword());
        daou.crearUsuario(u);
        FacesContext context = FacesContext.getCurrentInstance();
        context.addMessage("username", new FacesMessage(FacesMessage.SEVERITY_WARN, "Crear Usuario", "Usuario creado correctamente"));
        //close();
    }

    public void buscarEmpleado() {

        Usuario u = new Usuario();
        ArrayList<Usuario> us = new ArrayList<Usuario>();

        init();

        if (getNombre() == null && getId() == null && getRol() == null) {
            us = daou.buscarUsuarioEmpresa(getEmpresa());
        } else if (!getId().equals("")) {
            u = daou.buscarUsuarioID(getId());
        } else if (!getNombre().equals("")) {
            us = daou.buscarUsuarioNombre(getNombre());
        } else if (!getRol().equals("")) {
            us = daou.buscarUsuarioRol(getRol(), getEmpresa());
        }

        if (us.isEmpty() && !u.getNombre().isEmpty()) {
            resultad.add(u.getNombre());
        } else if (!us.isEmpty()) {
            Iterator<Usuario> it = us.listIterator();
            while (it.hasNext()) {
                u = it.next();
                resultad.add(u.getId());
            }
        } else {
            resultad.add("");
        }

        close();

    }

    public void eliminar() {
        init();
        daou.eliminarUsuario(getId());
        close();
    }

    public String getNombre() {
        return nombre;
    }

    public String getId() {
        return id;
    }

    public String getRol() {
        return rol;
    }

    public List<String> getResultad() {
        return resultad;
    }

    public void setResultad(List<String> resultad) {
        this.resultad = resultad;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setRol(String rol) {
        this.rol = rol;
    }

    public Map<String, String> getRoles() {
        return roles;
    }

    public void setRoles(Map<String, String> roles) {
        this.roles = roles;
    }

    public String getEmpresa() {
        return empresa;
    }

    public void setEmpresa(String empresa) {
        this.empresa = empresa;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}